Memory devices (or “caches”) connected to or otherwise in communication with a backing store are able to store data from the backing store. Storing data from the backing store on the cache allows the data to be quickly accessible to an operating system or other application, improving application performance over accessing the data directly from the backing store. Many backing stores are hard disk devices that have slower read performance than caches such as flash memory devices.
However, caches are typically limited by size such that only a portion of the data from the backing stores is able to be stored on the caches. Because of the size limitations, selecting which data should be cached is one way of improving application performance. Frequently accessed data may be stored on the cache for quick access, and data that is accessed less frequently or infrequently may not be stored on the cache and accessed directly from the backing store. A cache admittance policy determines when data being written to the backing store or read from the backing store should also be stored in the cache. Setting or adjusting the admittance policy to store the data that is most useful for application access provides efficient and easy access to the data while maximizing application performance.
Read admittance policies for memory caches are generally configured to cache data based on the number of read touch counts (read counts) or read access requests to the backing store. Thus, data on the backing store that is read or accessed most frequently is cached for quick retrieval, resulting in more efficient application performance. In some conventional memory caches, write admittance policies are configured to cache data based on the number of write touches or write access requests to the backing store. For such an admittance policy, data that is written most frequently is cached.
Throughout the description, similar reference numbers may be used to identify similar elements.